// 真正创建节点,将vnode创建为DOM，是孤儿节点，不进行插入
export default function createElement(vnode) {
	let domNode = document.createElement(vnode.sel)
	// 有子节点还是有文本？
	/**
	 * 注意：
	 * 	vnode.children === undefined || vnode.children.length === 0
	 *  不能颠倒，否则会先判断vnode.children.length没有length属性编译不通过
	 */
	if (vnode.text !== '' && (vnode.children === undefined || vnode.children.length === 0)) {
		// 他内部是文字
		domNode.innerText = vnode.text
		// 补充elm属性
		vnode.elm = domNode
	} else if (Array.isArray(vnode.children) && vnode.children.length > 0) {
		// 它内部是子节点，就要递归创建节点
		for (let i = 0; i < vnode.children.length; i++) {
			let ch = vnode.children[i]
			console.log(ch)
			// 创建出它的DOM，一旦调用createElement意味着
			// 创建出DOM，但是并没有上树，是一个孤儿节点
			let chDOM = createElement(ch)
			// 上树 追加子节点
			domNode.appendChild(chDOM)
		}
		// 补充elm属性
		vnode.elm = domNode
	}
	// 返回elm
	return vnode.elm
}